package com.common.retrofit.service;

import com.common.retrofit.bean.BearSearchBean;
import com.common.retrofit.bean.ChuZhiDetailsBean;
import com.common.retrofit.bean.CollectionBean;
import com.common.retrofit.bean.ConsumeBean;
import com.common.retrofit.bean.ContentDetailsBean;
import com.common.retrofit.bean.FirstSortBean;
import com.common.retrofit.bean.GoodsDeatailsBean;
import com.common.retrofit.bean.HomeBean;
import com.common.retrofit.bean.HomeListNewBean;
import com.common.retrofit.bean.HomeReccommedBean;
import com.common.retrofit.bean.JiFenDetailsBean;
import com.common.retrofit.bean.MyShareBean;
import com.common.retrofit.bean.RewardDetailsBean;
import com.common.retrofit.bean.SecondSortBean;
import com.common.retrofit.bean.ThreeCategroyBean;
import com.common.retrofit.bean.TopFourBean;
import com.common.retrofit.entity.resultImpl.HttpRespBean;

import java.util.ArrayList;

import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
import rx.Observable;

/**
 * Create by leo
 * 创建日期：2018/5/15
 * 描述：
 */

public interface BearUserService {

    @FormUrlEncoded
    @POST("appIndex")
    Observable<HttpRespBean<HomeBean>> appIndex(@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid

    );
    @FormUrlEncoded
    @POST("categoryOne")
    Observable<HttpRespBean<FirstSortBean>> categoryOne (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid

    );

    @FormUrlEncoded
    @POST("categoryTwo")
    Observable<HttpRespBean<SecondSortBean>> categoryTwo  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("pid") String pid

    );
    @FormUrlEncoded
    @POST("recommendList")
    Observable<HttpRespBean<ArrayList<HomeReccommedBean>>> recommendList (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("moreList")
    Observable<HttpRespBean<ArrayList<HomeListNewBean>>> moreList  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("type") int type
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("activityList")
    Observable<HttpRespBean<ArrayList<TopFourBean>>> activityList  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("type") String type
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("activityInfo")
    Observable<HttpRespBean<ContentDetailsBean>> activityInfo   (@Field("time") String time, @Field("hash") String hash
            , @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("activity_id") String activity_id
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("setLikes")
    Observable<HttpRespBean<Object>> setLikes    (@Field("time") String time, @Field("hash") String hash
            , @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("type") int type
            , @Field("activity_id") String activity_id


    );

    @FormUrlEncoded
    @POST("addComment")
    Observable<HttpRespBean<Object>> addComment    (@Field("time") String time, @Field("hash") String hash
            , @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("activity_id") String activity_id
            , @Field("content") String content

    );

    @FormUrlEncoded
    @POST("goodInfo")
    Observable<HttpRespBean<GoodsDeatailsBean>>     goodInfo   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("id") String id

    );
    @FormUrlEncoded
    @POST("goodCollection")
    Observable<HttpRespBean<Object>>     goodCollection    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("gid") String gid
            , @Field("type") String type

    );

    @FormUrlEncoded
    @POST("recommendInfo")
    Observable<HttpRespBean<ContentDetailsBean>> recommendInfo    (@Field("time") String time, @Field("hash") String hash
            , @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("recommend_id") String recommend_id
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("recommendComment")
    Observable<HttpRespBean<Object>> recommendComment     (@Field("time") String time, @Field("hash") String hash
            , @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("recommend_id") String recommend_id
            , @Field("content") String content

    );
    @FormUrlEncoded
    @POST("paylist")
    Observable<HttpRespBean<ArrayList<ConsumeBean>>> paylist (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("UserInfo")
    Observable<HttpRespBean<com.common.retrofit.bean.UserBean>> UserInfo   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid

    );
    @FormUrlEncoded
    @POST("updateUserInfo")
    Observable<HttpRespBean<Object>> updateUserInfo    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("username") String username
            , @Field("sex") String sex
            , @Field("id_num") String id_num

    );

    @FormUrlEncoded
    @POST("scoreList")
    Observable<HttpRespBean<ArrayList<JiFenDetailsBean>>> scoreList   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("savingsList")
    Observable<HttpRespBean<ArrayList<ChuZhiDetailsBean>>> savingsList    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("myScoreInfo")
    Observable<HttpRespBean<RewardDetailsBean>> myScoreInfo     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("getMyCollection")
    Observable<HttpRespBean<ArrayList<CollectionBean>>> getMyCollection     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );

    @FormUrlEncoded
    @POST("goodsSearch")
    Observable<HttpRespBean<ArrayList<BearSearchBean>>> goodsSearch  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("search") String search
            , @Field("sort_type") int sort_type
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("bindMobile")
    Observable<HttpRespBean<Object>> bindMobile   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("mobile") String mobile
            , @Field("checkcode") String checkcode
            , @Field("invitation_code") String invitation_code
    );

    @FormUrlEncoded
    @POST("share")
    Observable<HttpRespBean<MyShareBean>> share    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid

    );

    @FormUrlEncoded
    @POST("goodsCategory")
    Observable<HttpRespBean<ArrayList<ThreeCategroyBean>>> goodsCategory  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("uid") String uid
            , @Field("hashid") String hashid
            , @Field("c_id") String c_id
            , @Field("page") int page

    );

}
